import { createApp } from 'vue'
import { createPinia } from 'pinia'
import './style.css'
import App from './App.vue'
import router from './router'
import { showError } from './utils/snackbar'

// 创建应用实例
const app = createApp(App)

// 使用路由
app.use(router)

// 使用状态管理
app.use(createPinia())

// 监听Tauri事件
const setupTauriEventListeners = async () => {
  try {
    // 检查是否在Tauri环境中
    if (typeof window !== 'undefined' && (window as any).__TAURI__) {
      const { listen } = await import('@tauri-apps/api/event');
      
      console.log('开始设置Tauri事件监听器...');
      
      // 监听HTTP服务器错误事件
      await listen('http_server_error', (event) => {
        console.error('收到HTTP服务器错误事件:', event.payload);
        showError(`HTTP服务器错误: ${event.payload}`, 8000);
      });
      
      // 监听WebSocket服务器错误事件
      await listen('websocket_server_error', (event) => {
        console.error('收到WebSocket服务器错误事件:', event.payload);
        showError(`WebSocket服务器错误: ${event.payload}`, 8000);
      });
      
      console.log('Tauri事件监听器设置完成');
    } else {
      console.log('不在Tauri环境中，跳过事件监听器设置');
    }
  } catch (error) {
    console.error('设置Tauri事件监听器失败:', error);
  }
};

// 设置事件监听器
setupTauriEventListeners();

// 挂载应用
app.mount('#app')
